package entities;

import services.impl.StandardOPs;
import java.util.List;
import java.util.LinkedList;
import java.util.ArrayList;
import java.util.Arrays;
import java.time.LocalDate;
import java.io.Serializable;
import java.lang.reflect.Method;

public class Group implements Serializable {
	
	/* all primary attributes */
	private String Id;
	private String Name;
	private String Introduce;
	private String BelongTeam;
	
	/* all references */
	private List<Team> GroupBelongTeam = new LinkedList<Team>(); 
	private List<Student> GroupHasStudent = new LinkedList<Student>(); 
	private List<StudentInGroup> GroupHasStudentLink = new LinkedList<StudentInGroup>(); 
	
	/* all get and set functions */
	public String getId() {
		return Id;
	}	
	
	public void setId(String id) {
		this.Id = id;
	}
	public String getName() {
		return Name;
	}	
	
	public void setName(String name) {
		this.Name = name;
	}
	public String getIntroduce() {
		return Introduce;
	}	
	
	public void setIntroduce(String introduce) {
		this.Introduce = introduce;
	}
	public String getBelongTeam() {
		return BelongTeam;
	}	
	
	public void setBelongTeam(String belongteam) {
		this.BelongTeam = belongteam;
	}
	
	/* all functions for reference*/
	public List<Team> getGroupBelongTeam() {
		return GroupBelongTeam;
	}	
	
	public void addGroupBelongTeam(Team team) {
		this.GroupBelongTeam.add(team);
	}
	
	public void deleteGroupBelongTeam(Team team) {
		this.GroupBelongTeam.remove(team);
	}
	public List<Student> getGroupHasStudent() {
		return GroupHasStudent;
	}	
	
	public void addGroupHasStudent(Student student) {
		this.GroupHasStudent.add(student);
	}
	
	public void deleteGroupHasStudent(Student student) {
		this.GroupHasStudent.remove(student);
	}
	public List<StudentInGroup> getGroupHasStudentLink() {
		return GroupHasStudentLink;
	}	
	
	public void addGroupHasStudentLink(StudentInGroup studentingroup) {
		this.GroupHasStudentLink.add(studentingroup);
	}
	
	public void deleteGroupHasStudentLink(StudentInGroup studentingroup) {
		this.GroupHasStudentLink.remove(studentingroup);
	}
	


}
